A grid is a collection of machines, each machine having a number of resources which are contributed either alone or in combination to a grid network. Spare computing resources are identified on each of the collection of machines and used to process units of work.
There are a number of ways in which the spare computing resources of a grid network can be utilised. Firstly, an application can be run on an available machine within the grid network, rather than locally. Secondly, an application which is designed to split its work in such a way that the separate parts of the application can execute in parallel on different processors can be run on the grid network, and thirdly an application that needs to be executed many times on many different machines may also be run.
A grid network may also be used for the storage of data, often called a data grid. Each machine on the grid network usually provides some quantity of storage for the grid to use, even if temporary. Storage can be memory attached to the processor or it can be secondary storage using hard disk drives or other permanent storage media.
In order to use the spare computing resource of any particular machine, the spare computing resource must first be identified. Currently, in order to achieve this, software is installed on each machine within the grid network. The software identifies when the machine has spare resources which are available for use and sends a notification to a scheduling application of its availability to accept further work. The scheduler allocates the requests to the notifying machine and sends the job for processing.
A problem with this approach is one of increased network traffic. This is because each machine within the grid network must notify the scheduler of its availability to process a unit of work. Thus, if the grid comprises one hundred machines, each one of those machines will send a notification to the scheduler of availability of its spare resource—thus increasing network traffic. Further, problems occur in the amount of resource used by the resource identification software installed on each machine. This resource could be used to process other requests. In addition, the maintenance involved in maintaining the resource identification software on each machine adds another burden to the overall solution.
Thus there is a need within the prior art to find an improved method of scheduling work in a grid network which solves problems such as those discussed above.